home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / datasheets and manuals / Hardware / WHT / scsi / dsr_sources_2_2001 / deallocate < prev    next >
Text File  |  2006-10-19  |  2KB  |  82 lines

  1. ************************************************************
  2. *                                                          *
  3. *  Procedure DEALLOCATE                                    *
  4. *                                                          *
  5. *  This procedure deallocates AUs from the bitmap.  The    *
  6. *  input parameters to this procedure are:                 *
  7. *                                                          *
  8. *  R6 - SCSI ID in the high byte                           *
  9. *  R7 - Starting AU to delete                              *
  10. *  R8 - Ending AU to deallocate                            *
  11. *                                                          *
  12. ************************************************************
  13.  
  14. DEALL  DATA ALWS
  15.        DATA DEALL0
  16.  
  17. * REGISTER USAGE
  18. *
  19. * R7, R8 - Used to read, write block #
  20. * R2 - Current AU we're deallocating
  21. * R0 - Offset within the word
  22. * R1 - Offset within the block
  23.  
  24. DEALL0 CLR  R7
  25.  
  26.        MOV  @14(R13),R2      Get starting AU
  27.        MOV  @12(R13),R6      Get SCSI ID
  28.  
  29. DEALL1 MOV  R2,R8
  30.        AI   R8,256*8         Offset due to VIB
  31.        MOV  R8,R0
  32. *      ANDI R0,>000F
  33.        MOV  R8,R1
  34.        ANDI R1,>0FF0
  35.        SRL  R1,3
  36.        AI   R1,SECBUF
  37.        SRL  R8,12
  38.        LI   R5,>8000
  39.        SRC  R5,0
  40.  
  41. DEALL2 BLWP @BANKIT          Read the block
  42.        DATA SCSIRD
  43.        JEQ  DEALL3
  44.        AI   R8,16            If there was an error, read the copy
  45.        BLWP @BANKIT          Read the block
  46.        DATA SCSIRD
  47.        AI   R8,-16
  48.  
  49. DEALL3
  50.        SZC  R5,*R1
  51.  
  52.        C    R2,@16(R13)      See if we're done
  53.        JEQ  DEALL4
  54.        INC  R2
  55.        SRC  R5,1
  56.        JNC  DEALL3
  57.        INCT R1
  58.        CI   R1,SECBUF+>200
  59.        JNE  DEALL3
  60.  
  61. * Write out the bitmap and read in the next part
  62.  
  63.        BLWP @BANKIT
  64.        DATA SCSIWT
  65.        AI   R8,16
  66.        BLWP @BANKIT
  67.        DATA SCSIWT
  68.        AI   R8,-15
  69.        LI   R1,SECBUF
  70.        JMP  DEALL2
  71.  
  72. * Now write out the last buffer
  73. *
  74. DEALL4 BLWP @BANKIT
  75.        DATA SCSIWT
  76.  
  77.        AI   R8,16            Write out the copy as well
  78.        BLWP @BANKIT
  79.        DATA SCSIWT
  80.  
  81.        RTWP
  82.